bmesh.ops method to get Loose vertices / edges and delete from that list?
Verts with no linked faces

Possibly easiest here is to look for verts with no linked faces. ie they make no part of any face

import bpy
import bmesh
context = bpy.context

meshes = set(o.data for o in context.selected_objects if o.type == 'MESH')
bm = bmesh.new()

for m in meshes:

    bm.from_mesh(m)
    # verts with no linked faces
    verts = [v for v in bm.verts if not v.link_faces]

    print(f"{m.name}: removed {len(verts)} verts")
    # equiv of bmesh.ops.delete(bm, geom=verts, context='VERTS')
    for v in verts:
        bm.verts.remove(v)

    bm.to_mesh(m)
    m.update()
    bm.clear()