postgresql – Why doesn’t my UNIQUE constraint trigger?

I have this UNIQUE constraint:

ALTER TABLE table ADD CONSTRAINT "abc123" UNIQUE ("col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8");

Then I do:

INSERT INTO table ("col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8") VALUES ('a', 'b', 'c', 'd', 'e', 'f', null, true);
INSERT INTO table ("col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8") VALUES ('a', 'b', 'c', 'd', 'e', 'f', null, true);

Both work. Two columns are added to the table. The second is logically supposed to fail. But it doesn’t.

What am I doing wrong? This is driving me insane.

Note: If this were my own data, I would have a truly unique column and not this “crazy” UNIQUE constraint. The issue is that this table holds the records from my bank account, and they stupidly don’t have an actually “unique” column in their CSV dump which I could use to actually make sure that duplicate rows aren’t inserted, so I have to come up with one which combines all the columns in the entire table to determine uniqueness.