se hai richiamato .addnew hai aggiunto un record, altrimenti hai modificato il record corrente.
Comunque non capisco il problema, con il codice che hai scritto modifichi solo il record in cui sei posizionato, come fai a non riuscire a stabilire se è un record esistente oppure un nuovo record creato dopo aver richiamato un .addnew?

Il problema l'avresti se per aggiornate il DB usi direttamente SQL e non un recordset....