Ganesh may be overlooking the ability to define custom properties in the component. You can 100% patch a Data Source like SharePoint from inside a Component. For each field you wish to patch (whether it is an insert or update), define an output property.
Then on the app side, your patch command will resemble something similar to the following example (an actual in-production example):
Patch(
tblResources,
LookUp(tblResources, ResourcePK = First(colResource).ResourcePK),
{
Title: 'comResourceInfo-S920'.Title,
Description: 'comResourceInfo-S920'.Description,
UNC: 'comResourceInfo-S920'.UNC,
URL: 'comResourceInfo-S920'.URL,
Active: 'comResourceInfo-S920'.Active,
bump: 'comResourceInfo-S920'.Bump,
RsrcTypeFK: 'comResourceInfo-S920'.RTypeFK,
ToolFK: 'comResourceInfo-S920'.ToolFK,
StatusFK: 'comResourceInfo-S920'.StatusFK,
BPO_L0_FK: 'comResourceInfo-S920'.BPO0,
BPO_L1_FK: 'comResourceInfo-S920'.BPO1,
BPO_L2_FK: 'comResourceInfo-S920'.BPO2
})
My component is comResourceInfo. When I add the component to the screen, it is referred to as comResourceInfo-S920. All of the output properties that I defined in the component are available within that element and referred to as shown following the dot notation in the patch function above.
The screen has a save button to execute the patch. And that's is how you patch a Data Source like SharePoint from inside a Component.
NOTE that no, the example is not patching a datasource from within a component. Your patch is outside your component, and all you are doing is passing the values from your component out to the calling app - which is where the patch is. Doesn't solve the issue at all.