Devi implementare un campo LOCKDATE e LOCKWHO nella tua tabella. L'ho fatto in molte applicazioni al di fuori di PHP/Mysql ed è sempre lo stesso.
Il blocco termina quando il TTL è passato, quindi puoi sottrarre le date usando NOW e LOCKDATE per vedere se l'oggetto è stato bloccato per più di 30 minuti o 1 ora come desideri.
Un altro fattore è considerare se l'utente corrente è quello che blocca l'oggetto. Ecco perché hai bisogno anche di un LOCKWHO. Questo può essere un user_id dal tuo database, un session_id da PHP. Ma tienilo su qualcosa che identifichi un utente, un indirizzo IP non è un buon modo per farlo.
Infine, pensa sempre a una funzione di sblocco di massa che reimposta semplicemente tutti i LOCKDATE e LOCKWHO...
Saluti