trying to ensure that rollback or commit always get called