Can we use the poll() required operations without a context
As in the docs, some operations requires context to perform (For example: To select edit mode: bpy.ops.object.mode_set(mode='EDIT')) When we try to run blender from external console, we won't get the corresponding context results the error is thrown. To avoid these types of error, we need to override the context.
For this example, the required context can be obtained using the following code:
override = bpy.context.copy()
    for window in bpy.data.window_managers[0].windows:
        screen = window.screen
        workspace = window.workspace
        for area in screen.areas:
            if area.type == 'VIEW_3D':
                override['window'] = window
                override['screen'] = screen
                override['area'] = area
                override['workspace'] = workspace
                override['active_object'] = bpy.context.view_layer.objects.active
                break
bpy.ops.object.mode_set(override, mode='EDIT')

IMPORTANT
For every operation, the context would be different. So, you need to find the correct context for every operation in a trial and error method. The above context can only be used in the case of changing to edit mode