my_new_posts = {(1): post1, (5): post5, (1000): post1000}
for each in posts.query.filter(posts.id.in_(list(my_new_posts.keys()))).all():
    db.session.merge(my_new_posts.pop(each.id))
db.session.add_all(list(my_new_posts.values()))
db.session.commit()
SQLAlchemy - выполнение массового обновления (если существует, обновить, иначе вставить) в postgresql