Ваш вопрос очень широкий, и это так.
Я немного сузю проблему, предполагая, что вы используете пружину (ботинок).Если так, то это очень легко ответить.Используйте аннотацию @Transactional над методами, которые содержат логику для сохранения или удаления.И включите необходимые библиотеки of.
С помощью методов, аннотированных таким образом, весеннее (загрузочное) приложение гарантирует, что обе операции будут выполняться в порядке, необходимом для поддержания согласованной базы данных.
Если возникает ошибка, вы можете обработать ее на более высоких уровнях вашего приложения или просто показать ошибку пользователю.