Lo que quizas puedas hacer es consultar a la Base de datos primero para ver si ya existe una reserva en ese horario y dependiendo de eso insertar o no.
Código SQL:
Ver originalSELECT COUNT(codi) AS cantidad FROM reservaCataAgencies
WHERE (horarioInicio BETWEEN '2012-04-11 00:12:12' AND '2012-04-11 19:12:12') &&
(horarioFinal BETWEEN '2012-04-11 00:12:12' AND '2012-04-11 19:12:12')
Esa consulta tendria que dar 0 o 1, si da 0 no existe reserva entonces inserto, si da 1 existe reserva entonces no reservo.
Espero que te sirva de ejemplo.
Saludos