UpsertRequest was a new request introduced in CRM 2015 Online Update 1.
The request based on the alternate key specified, looks for the record, if the record is existing it updates it else it creates a new record.
UpsertResponse has a property named RecordCreated which is false if the record is found and updated else it is true if record is created. The Target property holds the reference of the record created or updated.
Suppose we have following record created. It has Alternate key defined on “Alternate Key Field”
As we have demo entity record with alternate key field having value as “My Alternate Key 1” it will update the record.
Running it again this time changing the value for the alternate key field.
It creates a new record.
Hope it helps..