Se puede utilizar un procedimiento almacenado en PL/pgSQL. Echar un vistazo a los documentos [] [1]
Algo como esto
CREATE FUNCTION run(fooVal int, booVal int)
RETURNS TABLE(fooVal int, booVal int)
AS $$
BEGIN
UPDATE table SET foo = fooVal WHERE boo= booVal;
RETURN QUERY SELECT fooVal, booVal from table WHERE (foo = fooVal) AND (boo = booVal);
END;
$$ LANGUAGE plpgsql;
Usted ahorrará el tiempo de ida y vuelta para el envío de otra declaración. Esto no debería ser un cuello de botella de rendimiento. Así que respuesta corta: solo usa dos consultas. Eso está bien y así es como lo haces en SQL.
[1]: http://www.postgresql.org/docs/8.4/static/plpgsql.html docs
Si usted quiere hacer una cosa y luego otra, usted no está realmente haciendo al mismo tiempo; tu caña tiene los resultados de la consulta antes o después de la actualización. –