Declare-Begin-End es llamado un bloque anonimo. Su nombre se da, ya que tal como dices, no hay necesidad de crear funciones ni procedimientos con un nombre establecido, sino simplemente un fragmento de codigo que se ejecuta.
En postgresql, este concepto no existia hasta la versión 9.0. Si tienes esta versión o superior, lo puedes hacer, de lo contrario no es posible.
http://www.postgresql.org/docs/9.0/static/sql-do.html
Saludos