Buenas tardes,
La verdad yo no soy muy versado en delphi y mucho menos en Interbase, pero lo que si tengo claro es que el tipo de instruccion
BeginTransaccion
Commit ó Rollback
Procesa un conjunto de registros a la misma vez y no uno por uno. En mi humilde opinión debes cambiar el enfoque de tu grilla y trabajar cada fila individualmente, como cuando se trabaja con un Navigator
Perdon si mi respuesta no satisface tu inquietud o sino es muy clara.
Saludos...