Модель
 exercise = db.Table(
    'exercise',
     db.Column('programm_id', db.Integer, db.ForeignKey('programm.id'), primary_key=True),
     db.Column('exercise_id', db.Integer, db.ForeignKey('exercises.id'), primary_key=True)
)
class Programm(Base):
    __tablename__ = 'programm'
    user_id = db.Column(db.Integer, db.ForeignKey('auth_user.id'))
    name = db.Column(db.Text)
    exercise = db.relationship('Exercises', secondary=exercise, lazy='subquery',
                               backref=db.backref('programm', lazy=True),
                               cascade='all, delete-orphan', single_parent=True)

вьюха
 def delete_programm(id):
    form = IdForm(formdata=MultiDict({'id': id}))
    if not form.validate():
        return jsonify(error='Проверьте введеные данные!')
    instance = Programm.query.get(form.id.data)
    if instance is None:
        return jsonify(error="Object does not exist")
    if not instance.user_id == current_user.id:
        return jsonify(error='Отказано в доступе')
    try:
        db.session.delete(instance)
        db.session.commit()
    except SQLAlchemyError:
        return jsonify(error='Не удалось сохранить. Попробуйте позже.')
    return '', 200

Возвращается статус 200, но ничего не удаляется. Что не так?