Tutto di tutto questo.
Non c'è nulla di automatico.
Cominciamo col dire che nulla ti vieta di fare una INSERT INTO con una chiave primaria, sicchè inserimenti multipli verranno negati (in realtà avrai un errore mysql, ma il risultato netto è lo stesso, non ti serve controllare prima l'esistenza, se hai un campo discriminante obbligatorio)
Secondariamente non puoi confidare nelle transazioni, semplicemente perchè... non ci sono (con myisam).
Inoltre, anche nel caso precedente, avresti il problema del livello ACID da impostare (cosa che tipicamente non puoi fare se non hai la disponibilità del server).
Volendo invece operare nel modo "giusto", cioè "piglia tutti i lock, rilasciali tutti in un colpo solo", insomma alla vecchia maniera, devi fare così
LOCK TABLES pippo READ, pluto WRITE, paperino WRITE;
... fai qualcosa ...
UNLOCK TABLES;
Attenzione però:
1) durante queste operazioni nessun altro potrà leggere o scrivere su pluto e paperino (mentre potranno leggere pippo)
2) meno roba metti lì, meglio è (proprio perchè stai bloccando il parallelismo)
3) può capitare che le tabelle siano già LOCK-ate, nel qual caso rischi di morire di fame. Tipicamente si utilizza un timeout a scadenza del quale emetti un qualche genere di errore