Addon: create empy in edit mode
Use API methods

Using base API methods to add new objects to a scene, alleviates the need for context.

To create a new empty with name "somename" linked to the context scene at location (0, 0, 0)

mt = bpy.data.objects.new("somename", None)
context.scene.objects.link(mt)  
mt.location = (0, 0, 0)


Note: to put the empty at the global location of the vertex

mw = context.edit_object.matrix_world
global_vert_pos = mw * avert.co


otherwise it will be at the local coordinate, eg one local corner vertex of default cube is (1, 1, 1), any transformation on the cube and it's global location will differ.

Soapbox: since context is an argument of execute method use me = context.edit_object.data  (there is no need to fully address from bpy.)

Note scene.objects.link is no more in 2.8