How to add a new UV map to all selected objects? I would like to select multiple objects and add a custom UV set to all of them.
My version works for one selected object only but not for multiple selected objects.

import bpy

# Get all selected objects
selected_objects = bpy.context.selected_objects 

for obj in selected_objects:
    # Add new UV set
    bpy.ops.mesh.uv_texture_add() 
    # Set new UV set name for active UV set
    bpy.context.object.data.uv_layers.active.name = "UV_ao"


What's wrong with my code?
You can get rid of the uv_texture_add() operator by adding a new UVLoopLayer:

import bpy

for obj in bpy.context.selected_objects:
    # Make sure this is a mesh object and that it doesn't already use this UV Map
    if obj.type == 'MESH' and "UV_ao" not in obj.data.uv_layers:
        obj.data.uv_layers.new(name="UV_ao")