Using write_row appears to block set_column from modifying the column's formatting. I think it is because the module has no method to revoke or replace cell formatting once applied and write_row applies that formatting. If you want to apply the same formatting to every cell, you can provide a format in the write_row call, which is rarely the case.
I have found multiple people asking for solutions to this issue with no resolution.