The documentation says
"If the current row is not in either an Unchanged or an Added state, it throws an InvalidOperationException with the message that SetModified can only be invoked on a DataRow instance where the RowState is Unchanged."
It should say "If the current row is not in an Unchanged state...", because it DOES throw an exception if the row is in an Added state.