I don't see how it's necessary. If there's no decorator, the function should use autocommit except for the places that the transaction is being explicitly managed: https://docs.djangoproject.com/en/1.4/topics/db/transactions/#controlling-transaction-management-in-views