Boolean on two simple bmesh
Hope this helps:

import bpy

# initialize the variables to work with, in this case two selected objects, in yours c1mesh and c2mesh
first_object = bpy.context.selected_objects[0]
second_object = bpy.context.selected_objects[1]

# add the modifier and change settings
first_object.modifiers.new(name = "Boolean", type = 'BOOLEAN')
first_object.modifiers.get("Boolean").operation = "DIFFERENCE"
first_object.modifiers.get("Boolean").object = second_object

# just cosmetic hiding of second object so you can instantly see the result
second_object.hide_viewport = True