Function to add a node with a unique ID and x,y coordinates This here is a function that adds a graph node, with a unique id to an x,y matrix. 

The rules are that : 


The node id must be unique
Only one node can exist at a given coordinate. 


Here's my function that attempts to add a node with given id, at given x y coordinates .

def addNode(self, node_id, x, y):
    if self.node_list[node_id] != None:
        raise exception("This node ID already exists.")
    else:
        if self.spacialMatrix[x][y] != None:
            raise exception("This node position is already populated.")
        else:               
            self.spacialMatrix[x][y] = node_id
            self.node_list[node_id] = [x,y]


How else would I do this? 

I generally prefer keeping an if/else structure (so that you know that you are capturing all branches of your logic flow, rather than leaving unhandled else conditions).
def addNode(self, node_id, x, y):
    if self.node_list[node_id] != None:


Since None is a guaranteed singleton, you could use is not None rather than != None.

        raise exception("This node ID already exists.")


If this exception is quite common, assuming this code is part of a tree structure of some sort, you could write a custom exception such as NodeError to handle all such error - that'd be neat.

else:


Is it necessary to have the else here? If the if clause above raises an exception, this block won't be executed anyway; so I'd suggest you should remove this and unindent the code below.

    if self.spacialMatrix[x][y] != None:
        raise exception("This node position is already populated.")


Same thing I mentioned above - is not None and NodeError exception. Also, wouldn't the wrong x and y arguments raise an IndexError? Have you done anything else in the code to ensure that this won't happen?

    else:               
        self.spacialMatrix[x][y] = node_id
        self.node_list[node_id] = [x,y]


This part looks good.

My suggestions:

class NodeError(exception):
    """
    For node related errors.
    """
    pass

def addNode(self, node_id, x, y):
    if self.node_list[node_id] is not None:
        raise NodeError("This node ID already exists.")
    if self.spacialMatrix[x][y] is not None:
        raise NodeError("This node position is already populated.")
    self.spacialMatrix[x][y] = node_id
    self.node_list[node_id] = [x,y]


Note: Adding doc strings would be a very good idea!