Earlier quoted context omitted.
The operation it's replacing is something like "SELECT, followed by UPDATE/INSERT". Implicit in that sequence is transmitting the selected rows over the network, and buffering the rows in-memory on the client side. With MERGE, you eliminate the network stress, and push the burden of managing the rows in-memory onto the postgres server. That's quite nice if you have beefy operations and want to keep the services/jobs…
You can already do SELECT followed by UPDATE/INSERT in a single query in postgres using CTEs...
Before, you’d have to either load the data in the client side or duplicate the CTE across two statements in a transaction.