Так что, если я правильно понял, вы хотите зафиксировать БД только в том случае, если вызов API был успешным, но не можете вызвать API, пока у вас не будет сгенерированного БД первичного ключа из вставки БД.
Таким образом, это приведет к некоему двухфазному типу фиксации, но что произойдет, если вставка прошла успешно, вызов API завершился успешно, но фиксация БД завершилась неудачно? (если это произойдет!)
Поэтому, я думаю, вам следует рассмотреть вместо этого реализацию шаблона проектирования Saga.
Это проект для сложных распределенных систем, особенно с использованием микросервисов. где вам необходимо обеспечить согласованность данных в разных распределенных системах. По сути, вы строите некую цепочку транзакций, которые нужно выполнять по порядку. Затем вы go проходите через них один за другим, и в случае успеха переходите к следующему.
Но для каждой транзакции у вас также есть компенсационная транзакция. Таким образом, если транзакция завершается неудачно, вы работаете в обратном порядке по списку, выполняя все компенсирующие транзакции одну за другой, пока в конце не получите одинаковое начальное состояние.
Существуют различные способы сделать это, например, хореография. основанная сага или основанная на оркестровке сага. Вы можете найти более подробную информацию и лучшее объяснение здесь: https://microservices.io/patterns/data/saga.html