How do I add a keyframe for a certain channel using Python?
See this answer and these paragraphs 
#1, 
#2,
#3,
#4
in the docs for api methods/functions to create/manipulate channels.

You might define your own function: 

def get_channel(action, data_path, index=0):
    for fcurve in action.fcurves:
        if fcurve.data_path == data_path and fcurve.array_index == index:
            return fcurve
    #nothing found
    return None

action = bpy.data.actions['CubeAction']
data_path = "location"
index = 2

fcurve = get_channel(action, data_path, index)


In this answer some options are given to find out the data_path of a channel.

To select an fcurve in the UI you simply set its select property to True.