Спасибо, именно так (update ... set thread_id = id where id = last_insert_id) и сделаю. Тело сообщения я пишу сразу, потом получаю из нее last_insert_id которое потом заношу в forum_message_body_id. Получается 3 подзапроса для корневых, 2 для всех остальных.