Add column to database, used with logical replication generates large WAL files
When you update a row, a new copy of the complete row is written to the table (and to WAL). This is how PostgreSQL works.
So after the update, the table will be more than twice as big, and you have generated a lot of WAL.
One thing you can do is run the update in batches of 10 million rows and run VACUUM on the table between these batches. That won't reduce WAL (that is not possible), but it will prevent table bloat. But you cannot do that in a single transaction.
In short, everything is working as it should.