[Zope] How to detect transaction abort to allow cleanup?