for this case you use a different Session, which you establish within the scope of the other one, add the state you want to it, and commit() it distinctly. Based on my limited experience with zope.transaction, this Session wouldn't even be using the zope.transaction extension so that it's own commit() method works normally.
the net effect of this is that your log operations occur on a different connection. I use this pattern for log tables extensively.