It’s a good point, the documentation around this might be not fully covered.
And, if I’m not mistaken, it’s something being established at the moment.
The matter is that despite of the unified interface across different DB backend there’re some subtle differences at the driver level in terms of the returned data. Additionally, it might also depend how you form queries:
sqlalchemy's raw queries or just pure raw queries.
fetch* methods will return records,
execute* methods do not return data, but in some backends can catch the db state response (like
INSERT 0 5 or
COPY 0 4), which is not generally exposed.
Also you can access the raw driver.
In meantime, do you have some particular use cases in mind? And what backends are you using?