La chiamata last_insert_id() ti dà l'id della PRIMA riga inserita nell'ultimo batch. Tutti gli altri inseriti sono garantiti sequenziali.
A meno che tu non stia facendo qualcosa di molto strano, questo ti permette di calcolare l'ID di ogni riga abbastanza facilmente.
In realtà il comportamento varia in 5.1 a seconda dell'impostazione del parametro innodb auto increment mode; questo non dovrebbe importare. Finché non lo modifichi dall'impostazione predefinita, vedrai il comportamento previsto.
Ci sono casi occasionali in cui ciò non fa ciò che ti aspetti e non è utile, ad esempio se esegui un AGGIORNAMENTO DELLA CHIAVE DUPLICATA o INSERTO IGNORA. In questi casi, dovrai fare qualcos'altro per calcolare gli ID di ogni riga.
Ma per un semplice batch INSERT vaniglia, senza valori specificati per la colonna auto-inc, è facile.
Una descrizione completa di come sono gli incrementi automatici gestito in innodb è qui