I would like to add to this discussion just the clarification that, when we say Django relies on transactions, we don't mean that it is impossible to write a database backend which doesn't implement them -- but that Django assumes transactional behavior to protect data integrity. It can work without transactions, for a very superficial definition of "work", but that operation will be prone to horrible race conditions and data losses. Similar disclaimers are valid for several other relational features.
Shai.
