You can make the deleted field an integer type. Then the "delete" procedure might look like this.
UPDATE emp e SET e.deleted = (SELECT max(deleted) + 1 FROM emp i WHERE i.dept = e.dept AND i.theme = e.theme AND i.date = e.date) WHERE e.empid = in_empid;
And you can do a unique constraint on four fields.
If the application expects only 0 or 1 from the database in the deleted field, you can solve this using a view or query in a stored procedure that returns data.
SELECT e.empid, e.empname, e.dept, e.theme, e.date, case e.deleted when 0 then 0 else 1 end deleted FROM emp e;