Du har udeladt datakolonnen fra dit indsættelseseksempel, men du nævnte det flere gange, så jeg antager, at det eksisterer. Jeg antager også, at det er en faktisk dato (ikke et tidsstempel eller datetime).
Hvis du tilføjer et unikt indeks på (bruger, handling, dato), vil din forespørgsel fungere.
Her er DDL:
alter table useractions
add unique index unique_idx (user,action,date);
Og din DML (tilføje datokolonnen):
insert into useractions (user, action, times, date) values (2, 3, 1, current_date())
on duplicate key update times = times + 1;