When I try to commit the changes when the added row is not the CurrentAddItem anymore because I've moved to some other row to make any modification. Problem is as the new row lose focus and a commit is called it shows the following error:

What I want is to make multiple changes in a table like adding new rows, removing some rows and editing some information and then finally making a commit.
I'm using sfDataGrid.View.CommitNew() to save new rows but it fails when the Selected Row is not the new row anymore.
Further making a sfDataGrid.View.CommitEdit() to save any edits in existing rows it fails with the following error:
Please tell If I'm doing it completely wrong?
Edit: Also please tell if CommitEdit() is required to call after deleting a record?