В PostgreSQL нет операции CREATE DATABASE IF NOT EXISTS, но её можно сэмулировать следующими способами.
1. Если данные не важны, то можно удалить базу данных и создать заново:
DROP DATABASE IF EXISTS python_db;
CREATE DATABASE python_db;
2. Проверить существование БД и создать её, если не существует:
cursor.execute("SELECT COUNT(*) = 0 FROM pg_catalog.pg_database WHERE datname = 'python_db'")
not_exists, = cursor.fetchone()
if not_exists:
cursor.execute('CREATE DATABASE python_db')
# rest of the script