INSERT is blind
INSERT does exactly what you say and nothing more. It does not look for a matching row, does not update an existing one, does not warn you about a repeat. If you run the same INSERT twice you get two rows. That is a feature, not a bug, but it surprises people the first time.
Make the table do the checking
When you create a table you can attach rules to a column:
PRIMARY KEYmeans unique and not blank, and usually makes it the main identifier.NOT NULLmeans a value is required.UNIQUEmeans no two rows share it.
The rule lives on the table, so every future INSERT is checked against it for free.