$ cat tt.csv
one;two;three
one;"hi; there";three
"123 main st.; Apt 22";"New York; NY";90023
$
$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(";", "", $i) } 1' tt.csv
one;two;three
one;hi there;three
123 main st. Apt 22;New York NY;90023
$
BEGIN начинает блок транзакции, то есть обозначает, что все операторы после команды BEGIN и до явной команды COMMIT или ROLLBACK будут выполняться в одной транзакции. По умолчанию (без BEGIN) Postgres Pro выполняет транзакции в режиме «autocommit» (автофиксация), то есть каждый оператор выполняется в своей отдельной транзакции, которая неявно фиксируется в конце оператора (если оператор был выполнен успешно; в противном случае транзакция откатывается).