Does dapper execute all query statements which are part of one query in QuerySingle method as one transaction? Example
IF NOT EXISTS (SELECT 1 FROM table WHERE ...
INSERT INTO TABLE...
No, you are responsible to create and manage the transaction. So if the second insert fails, the first insert will still be inserted if you don't use a transaction.
You can find how to use a transaction here: