2.91 Python Mirror UV
Thank you for the help. Instead of working with the UVs in the loops (which is probably the proper way of doing things) I used the below code. It changes the context to allow bpy.ops.transform.mirror to work.
original_area = bpy.context.area.type
bpy.context.view_layer.objects.active = unreal_mesh

bpy.context.area.type = 'IMAGE_EDITOR'
bpy.ops.object.mode_set(mode='EDIT', toggle=False)


bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action='SELECT')
#+ select the uvs
bpy.ops.uv.select_all(action='SELECT')

bpy.ops.transform.mirror(orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(True, False, False), use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False)

#+ return to the original mode where the script was run
bpy.context.area.type = original_area
bpy.ops.object.mode_set(mode='OBJECT', toggle=False)