Sorry I forgot to mention. The table that I am working on right now doesn't have any unique column. AFAIK, I can only use ON CONFLICT if there's an error for unique column.
I just want to ask if it's possible to insert data if it's not existing yet.
This seems more like a philosophical question than a technical one... but the answer is yes:
CREATE TABLE test_t (a varchar, b varchar, c integer); INSERT INTO test_t SELECT '1', '2', 3 WHERE false; --where false causes the data to effectively "not exist"
As for ON CONFLICT: conflicts can only happen between things that exist.