@iwonder
No, Patch is a function that patches records. If you specify a datasource for patch, then it knows to interact with a datasource. Otherwise, it patches records.
So in #3:
First, we get the record that we want with the Coalesce function. This will return the first record that is not blank.
So the first time, glbCurrentRecord will be blank and thus this will return the Defaults record for the datasource. (if there are no default values for the list, that can actually all be removed)
Second, we take that record from the Coalesce and patch it with another record. The other record is just simply {ID: Blank()}
This will essentially just blank out the ID column.
When you submit the form, if the ID is blank, then it knows to create the record. If it has a value, then it knows to update that record (same thing Patch does when working with a datasource by the way!)
So, by doing the patch, we are taking (after the first submit) the record that was last submitted, which will have ALL of the values submitted, and then we blank out the ID. This way, the form now has all the values from the previous submit, but since we just blanked out the ID, when it is submitted, it will be a new record that is created.
Hopefully that is pretty clear to understand. But, a takeaway, Patch is a multi-use function and is very powerful in PowerApps for modifying data in the app and even reshaping it.