rollback should be handled outside of finally block
avoid creating iteration for boolean check