Update target with new same name object+suffix added
When Blender creates a new object, if one of that name already exists then it adds the suffix to make it unique. You can pickup that name immediately after creation via the 'name' property.
In your case you simply need to use o.name in place of empty_name :
import bpy

empty_name = 'MyOwnEmpty'


o = bpy.data.objects.new( empty_name, None )

bpy.context.scene.collection.objects.link( o )

o.empty_display_size = 4
o.empty_display_type = 'ARROWS'


for x in bpy.context.selected_objects:
    objs = x.constraints.new(type='COPY_LOCATION')
    objs.use_offset = True
    #objs.target = bpy.context.scene.objects.get(empty_name)
    objs.target = bpy.context.scene.objects.get(o.name)