Синтаксис для этого, вероятно, зависит от базы данных. Но в Transact-SQL вы проверяете @@ TRANCOUNT, чтобы увидеть, участвуете ли вы в транзакции. Если вы хотите создать точку сохранения, то в конце вы можете просто пройти через конец функции (полагая, что фиксация или откат произойдут позже), или же откат до вашей точки сохранения.
Подробнее см. В документации Microsoft по точкам сохранения .
Поддержка точек сохранения довольно широко распространена, но я думаю, что механизм (при условии, что он существует) для определения того, что вы в данный момент находитесь в транзакции, будет немного отличаться.