Checking if data exists in a database is a read operation, so you'd use a SELECT statement. If the SELECT statement returns a non-empty recordset, then you know the data exists. Bonus: you also know the id number of the data you're looking for, for use in your update operation.
The INSERT... ON DUPLICATE KEY UPDATE is great if you know the unique id number of the row you're updating... which you might now.
The only issue with using a SELECT statement is that the operation is not guaranteed to be atomic - that is, this might happen:
- you run the SQL statement and get an empty set
- a different process inserts that form data into the database
- the first process, that ran the select statement, inserts the same form data
Good luck!