Is it good practice to check for existence of records before deleting them
I would just delete.

Even if I had to only delete if there were say exactly 2 records, then I would add this condition to the where clause, like

DELETE FROM table1
WHERE col1='somevalue'
AND (SELECT COUNT(*) FROM table1 WHERE col1 = 'somevalue') = 2;


In all cases when writing a delete statement consider that in general the where clause is usually either


restricting to a single row using a key;
restricting to a set of rows using a flag/code/status column; or
restricting to a set of rows using a range of values -- often dates.