Podría agregar una tercera columna ModifiedDate y usa eso:
insert into t(id, tag)
select id, tag
on duplicate key update ModifiedDate = now();
Esto garantizará que realmente se produzca una actualización y, a su vez, que LAST_INSERT_ID() devuelve un valor.