Операторы INSERT и UPDATE работают одновременно только с одной таблицей. У вас есть 3 таблицы, которые нуждаются во ВСТАВКАХ. Вы можете определенно ВСТАВИТЬ несколько строк в таблицу за один раз, и я думаю, что это хорошо, когда это возможно, но вы не можете поместить строки в несколько таблиц одновременно.
Думай об этом так. Когда вы запрашиваете данные, вы извлекаете записи из многих источников в единый набор результатов. Когда вы изменяете данные, вы извлекаете записи из многих источников, чтобы применить изменения к одному набору результатов.
Кроме того, мне неприятно это говорить, но есть вещи, которые не требуют супер-элегантного решения. Ваша хранимая процедура просто должна применить некоторые передовые практики, чтобы все 3 оператора INSERT выполнялись как элементарная транзакция (все или ничего). Конечный результат может быть многословным и неинтересным, но он будет быстрым, эффективным, безопасным, понятным и поддерживаемым.