How do you set the "current image" as far as bpy is concerned?
Unlike 3d view where you can only have one active object no matter how many views are open, the image editor is not restricted to that. From a UI standpoint you could have multiple UV/ImageEditor windows open, and then the concept of 'current image' starts to require more context. This is the case even if you had one image window open, or none when running in background mode. Luckily we don't need to worry about current image, or loop through views.

Use the right API calls 

instead of calling operators intended to be called by the UI, it's often more convenient to manipulate Image datablocks directly using the methods provided by the Image class. You can use:

import bpy

# make an alias to increase readability.
images = bpy.data.images

# if the image changes on disk, this should get the new pixels
images[image_name].reload()

# the same can be done using .load()
images.load("/home/zeffii/Desktop/some_image.png", check_existing=True)


As explained in your other question

Don't do this if you can avoid it

https://gist.github.com/zeffii/54410dcbff9b6aa4953d

import bpy

images = bpy.data.images

# say I know I have 2 images, and 2 IMAGE_EDITORS open
# currently none of the image editors are showing any image.
loaded_images = images[:]

AREA = 'IMAGE_EDITOR'

for window in bpy.context.window_manager.windows:
    for area in window.screen.areas:

        if not area.type == AREA:
            continue

        for s in area.spaces:
            if s.type == AREA:
                image_to_use = loaded_images.pop()
                # s.image is the property to set for each
                # IMAGE_EDITOR to tell it to display a certain 
                # image by reference.
                s.image = image_to_use