Suponiendo que entendí lo que preguntas y tomando en cuenta que un valor booleano es 1 ó 0, se me ocurre lo siguiente:
Código SQL
[-]
update padre
set disponible = (select min(disponible) from hijo where codigo_padre = padre.codigo)
Si todos los hijos están disponibles, el mínimo será 1, si por lo menos uno no lo está, el mínimo será 0.
// Saludos