Bulk insert, update if on conflict (bulk upsert) on Postgres
Turns out a special table named excluded
contains the row-to-be-inserted(strange name though)
insert into USERS( id, username, profile_picture)select unnest(array['12345']), unnest(array['Peter']), unnest(array['someURL'])on conflict (id) do update set username = excluded.username, profile_picture = excluded.profile_picture;
http://www.postgresql.org/docs/9.5/static/sql-insert.html#SQL-ON-CONFLICT
The SET and WHERE clauses in ON CONFLICT DO UPDATE have access to the existing row using the table's name (or an alias), and to rows proposed for insertion using the special excluded table...