Non rispondo alla domanda perche non conosco PostgereSQL
pero ti do una opinione ......
Se metti un vincolo sul DB poi ti torna indietro un bruttissimo errore dal DB verso la applicazione
e tutti penseranno che il programma non funziona ...........
Io metterei solo su lato applicazione qualcosa che impedisca la apertura di un nuovo Scontrino se un'altro è già aperto .....
.