use transaction method instead of direct BEGIN/COMMIT/ROLLBACK queries