How do I make this Postgres view that performs a join updatable?
You can't use NEW.*, because the view has columns that don't exist in the underlying table.  You have to explicitly list out the columns you want to add.  As people explained above, the reason this didn't work is that you did not provide a default.  You might want to consider using COALESCE() for this purpose.