How to check if two meshes intersect in python with BVH Tree?
yes, overlap in mathutils.bvhtree does show pairs of polygons that are intersecting if any. 

You will have to create 2 bvh trees, for each mesh, using one of the methods given in the api (from Object, from Bmesh, from Polygons), then use those as pairs = bvhA.overlap(bvhB)

So a basic check would just see if that list is [] or something. Or may further use the pairs of poly to do something.



Note that there are some limitations


it does not account for other info, if one obj is inside another, normals etc, only if they touch
it does not work for coplanar poly well, for example 2 blender default plane objects, one slightly shifted x (not reliable on this)