Ensures tx manager gets called in KernelTransaction#commit no matter what

Calling KernelTransaction#commit must end up calling transaction manager
commit/rollback so that the transaction will get finished properly.
This is done by having any operations done before it gets performed in a try
clause with the tx manager delegation in its catch/finally clause.