How to select a brush by it's name, and generate one if not existing?
If it can be avoided, it is better to not use operators inside an operator. You should not use bpy.context in the operator, instead use the context parameter that is passed in, this allows a context to be overridden and if calling other operators should be passed along.

To find an existing erase brush you can loop over the brushes found in bpy.data.brushes and see if any that are set to be used in texture painting (use_paint_image is True) and the blend mode is Erase Alpha then you can set it as the active brush in the tool settings that you have found. If no erase brushes are found, you can create a new one. Checking the name of a brush is unreliable as the user may change it to anything, such as "gomme" being french for eraser.

def execute(self, context):
    # get a list of erase alpha brushes
    erase_brushes = [b for b in bpy.data.brushes
                if b.use_paint_image and b.blend == 'ERASE_ALPHA']
    if len(erase_brushes):
        # if we have more than one just use the first
        use_brush = erase_brushes[0]
    else:
        # create an erase alpha brush
        use_brush = bpy.data.brushes.new('AlphaErase')
        use_brush.blend = 'ERASE_ALPHA'
        use_brush.use_pressure_strength = False

    context.scene.tool_settings.unified_paint_settings.use_pressure_size = False
    context.tool_settings.image_paint.brush = use_brush
    return {'FINISHED'}