First, the PostgreSQL page size is 8KB and has been that since the beginning.
The remaining part. According to PostgreSQL documentation[1] (on full page writes which decides if those are made), a copy of the entire page is only written fully to the WAL after the first modification of that page since the last checkpoint. Subsequent modifications will not result in full page writes to the WAL. So if you update a counter 3 times in sequence you won't get 3*8KB written to the WAL, instead you would get a single page dump and the remaining two would only log the row-level change which is much smaller[2]. This is further reduced by WAL compression[3] (reducing the segment usage) and by increasing the checkpointing interval which would reduce the amount of copies happening[4].
This irked me because it sounded like whatever you touch produces an 8KB copy of data and it seems to not be the case.
[1] - https://www.postgresql.org/docs/11/runtime-config-wal.html#G...
[2] - http://www.interdb.jp/pg/pgsql09.html
[3] - https://www.postgresql.org/docs/11/runtime-config-wal.html#G...
[4] - https://www.postgresql.org/docs/11/runtime-config-wal.html#G...