As you said, SQLite implements locking on DB file level.
Dapper or any other full or micro ORM cannot change this fact. No ORM will implement thread management or concurrency for any RDBMS. Thread management is responsibility of user.
Think other way. How ORM will know how to implement threading?
Yes; some ORMs manage connection up to certain level. But mostly, it is only limited to creating/opening/disposing it. ORMs do not control threading or concurrency. It is something to be implemented by user.
Response to your comment:
but yet the question still stays what dapper does in such cases as it may have some sort of retry logic to try execute the query again in case the lock is there
Dapper don't do anything like that. Dapper works exactly (well... almost) like ADO.NET. For any querying part, Dapper is not much functionally different than ADO.NET.
So, to answer your comment, if some provider of ADO.NET implement retry logic, it will be inherited by Dapper automatically. But, Dapper on itself do not implement any such logic.
If I guess correctly, ADO.NET will throw proper exception - Dapper will simply pass on that exception to you.
I hope this answer will help you.