CREATE PROCEDURE add_product (a INT, b TIMESTAMP, c VARCHAR(20), d VARCHAR(50), e INT, f INT)
AS $$
BEGIN
INSERT INTO sales (ID, Sale_time, Pharmacy, product, Number_of_packages, Price)
VALUES (a, b, c, d, e, f);
IF (a < 5) THEN
RAISE NOTICE 'перехватили ошибку 1', now();
END IF;
END;
$$ LANGUAGE plpgsql;
UPDATE userProfile
SET nick = 'вася'
WHERE userId = 522024879;
INSERT INTO userProfile (userid, nick)
SELECT 522024879, 'вася'
WHERE NOT EXISTS (SELECT 1 FROM userProfile WHERE userId =522024879);
Добавление записи нужно делать отдельным вызовом.
cursor.execute("INSERT users (id, cash) VALUES (1, 0)")
И в запросе я привел пример запроса по добавлению записи в таблицу users, вам видимо нужно не только поля id и cash заполнять при добавлении нового user-а но и все остальные.