I wonder if the Update Key Clause is set to "Use Delete then Insert" for the Datawindow.
If you have two rows with the same primary key, one row may have been deleted and goes into the delete buffer.
The other row might only have a modified key so that this will cause a delete and then an Insert - no second row in the delete buffer.
The Update() will then produce two DELETE and one INSERT statement.
Food for thought?
Arnd