You can handle this in a couple of ways. 1) You can move to the record that you want to delete (MoveAbsolute to the index) and call DeleteCurrentRow(). The business object will see that the record is in an Added state (not saved to the database) and just reject the changes on it which will dump it, leaving you with 4 records.
2) The other option is to move to the record (MoveAbsolute again) and call Undo() by passing the argument to indicate that you only want to undo the current row. This will reject the changes on the row and since the row has not been saved, it has the same effect as deleting it.
Now, your best bet it probably #1, because that way you can use the same delete action for deleting new records that aren't saved, yet, and deleting records that are already saved (those ones are marked for deletion for when Save() is called). If you use the Undo() method and it's a persisted record, it's just going to undo the changes you made since you retrieved it from the database.