Prueba esto:
Código SQL
[-]
update pasteles
set stock = if(stock + :delta > :maximo, :maximo, stock + :delta)
where codigo = :codigo
La misma sentencia comprueba si el stock actual más lo que agregas (:delta) se pasa del límite (:maximo), y de ser así, asigna el máximo en lugar del incremento.
Un comentario aparte: ¿para qué usas parámetros en tu consulta si al momento de ejecutarla te cepillas toda la consulta
y terminas asignando los valores dirctamente sin parámetros?
// Saludos