Al momento ho risolto in questo modo:

Codice PHP:
<?
if(mysql_query('INSERT INTO forum_topic (forum_id,utente,titolo) VALUES (3,2,"titolo")')){
   
$topic_id=mysql_insert_id();
   if(
mysql_query('INSERT INTO forum_thread (topic_id,utente,testo) VALUES ('.$topic_id.',2,"testo")')){
      echo 
"OK";
   }else{
      echo 
"Errore seconda query";
      
// Cancello la riga creata precedentemente per forum_topic in quanto inutile in seguito all'errore
      
mysql_query('DELETE FROM forum_topic WHERE id='.$topic_id);
   }
}else{
   echo 
"Errore prima query";
}
?>
Quello che intendevo per "elegante" era appunto risolvere il tutto con una query come accade in phpmyadmin, dove se viene riscontrato un errore anche solo in uno dei due INSERT l'intera query non viene eseguita (evitando quindi la terza, quella DELETE).