post_funcs is a list of callbacks, intended to have functions appended to it, and are called with arguments (instance). If any of the post_funcs raises an exception, the deletion is only affected if this will prevent a commit.
You cannot cancel the delete, but you can raise an exception (which will probably cancel the delete, but also cause an uncaught exception if not expected).
Note: this is not called when an instance is destroyed through garbage collection.
@@: Should this allow instance to be a primary key, so that a row can be deleted without first fetching it?
Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
See the source for more information.