Ciíclicamente aparece algún forista haciendo la misma pregunta, no es la primera vez. Si hubieses usado el buscador del foro posiblemente hubieses hallado algo.
Cita: En realidad es para SQLite pero la consulta seguro que es igual.
En realidad, sí, para todos los DBMS la respuesta es la misma:
no se puede hacer un doble insert, y menos cuando hay una dependencia funcional como constraint en una tabla respecto de la otra.
No hay modo de ahorrarte ese código que no quieres escribir. Simplemente es imposible , no sólo por cuestiones lógicas, sino también por consistencia de datos. Por ejemplo: si el primer INSERT fracasara por algún error de datos no detectado, ¿que harías con el segundo? ¿Lo dejas o no?
No pierdas tiempo: Dos tablas, dos INSERT.