} finally {
session.endOperationProfile(SessionProfiler.JtsAfterCompletion);
}
// Clean up by releasing the uow and client session
if (uow.shouldResumeUnitOfWorkOnTransactionCompletion() && getTransactionController().canMergeUnitOfWork_impl(status)){
uow.synchronizeAndResume();
uow.setSynchronized(false);
}else{
uow.release();
// Release the session explicitly