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

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