SQLAlchemy, как и многие другие ORM работают с драйверами - библиотеками, предоставляющее схожее по сигнатурам API для доступа к БД. Подробнее об этом вы можете почитать в
этой замечательной статье с картинками и примерами.
Ответ на вопрос: ДА, нужно, но бывает что и НЕТ, не нужно. И уточнение: в зависимости от того, что конкретно за backend будет в вашем случае. К примеру: Postgres,
в этом случае создание "движка" будет происходить с помощью строки объявления диалекта+драйвера,
а используемый модуль движка будет
psycopg2. Это означает, что вам надо сделать
pip install psycopg2
прежде чем начинать работу с ORM:
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
В случае с sqlite, например, по-умолчанию будет использована стандартная библиотека sqlite3 и дополнительно ничего делать не нужно. Просто объявить:
engine = create_engine('sqlite://')