vorrei sapere se questa transazione è corretta in PHP/MySQL

1 - inizio la transazione (BEGIN)
2 - inserisco un record in tb1 (chiave primaria autoincrement)
3 - memorizzo l'id del record appena inserito con SET @id1=LAST_INSERT_ID();
4 - inserisco più record in tb2 con chiave esterna pari alla chiave primaria di tb1 utilizzando la variabile @id1
5 - confermo (COMMIT) se non ci sono stati errori altrimenti annullo (ROLLBACK);

ci sono problemi in caso di accessi concorrenti?

se user1 inizia la transazione, user2 può iniziarene un'altra prima che quella di user1 sia terminata?

se si il mio dubbio è il seguente:
se user1 esegue i passi 1 e 2 e la chiave primaria di tb1 risulta essere N, poi se user2 esegue a sua volta i passi 1 e 2 prima che la transazione di user 1 sia terminata, la chiave primaria del record di user2 sarà N+1?
e se poi la transazione di user1 non va a buon fine e quella di user2 si, la chiave primaria del record di user2 sarà sempre N+1?

Spero di essere stato chiaro.
Grazie!!!