This is obviously much more difficult since you are truly adding a new record to the data table within the BO. Without looping ADO.NET has no way of telling nor does the BO since we rely on the ADO.NET row to tell us the state.Editing is entirely different because a row already exists, so it is just a matter of not setting the row state to anything and just letting nature take it's course. When adding a new row, you have to have something to put values into ... so you HAVE to create a new row.
The only two options I see for you is to either write a method to loop....or drop on a second BO which all of the fields are bound to. Then use a second BO as your "permanent" BO which has the data from the editing BO copied into it using the CopyDataFrom method on the BO in the BeforeSave or AfterSave and where you feel you need to make the transition. This will require more work but would allow you to have the "clean" row. In any case, you are going to have to create this logic yourself as the BOs and ADO.NET do not have a method to do this natively.