SORT_MEM is actually per-sort, not per-backend... from the docs
-
SORT_MEM specifies the amount of memory to be used by
internal sorts and hashes before switching to temporary disk
files. The value is specified in kilobytes, and defaults to 512
kilobytes. Note that for a complex query, several sorts and/or
hashes might be running in parallel, and each one will be
allowed to use as much memory as this value specifies before it
starts to put data into temporary files. And don't forget that each
running backend could be doing one or more sorts. So the total
memory space needed could be many times the value of
SORT_MEM.