add semicolons on final statement of block
throw an exception if commit/rollback fail

Since an exception was not through if commit or rollback failed it could leave
the context in an unexpected state leading to subsequent commits failing.