How do i add category [1001](+type=extension) using AMI?

The mechanism that is described there is processed at the time the file is read in. You are trying to do it after the file and its initial parse have been discarded in favour of modifying the internal content. Generally you need to use operations that directly modify the final internal representation, or you need to write a .conf file and reload. I think FreePBX does the latter, when you use its apply config operation.

I think chan_pjsip is the only one that uses type=*. but there are no AMI actions to directly manipulate it, and UpdateConfig wasn’t designed to support it, either.

It also looks to me as though update_config is intended to take a top level file as input, and, I strongly suspect, to resolve all #includes, as it looks, like + and type=modifiers are handled when update_config is run, not at reload time. If so, it would imply overwriting files that are owned by FreePBX, which will break FreePBX.

I suppose it is just possible that they would be copied from an inherits= setting, but even that might be a feature, rather than intended behaviour. The easiest way, to find out, would probably be to experiment.

The chances of finding anyone who has used updateconfig in anger is very low.

I suspect the main user of updateconfig is SwitchVox, not end users.

I think the only option open for chan_pjsip is to physically write the custom .conf file, then do a reload, which is what I think FreePBX does with the additional files, but probably without using AMI.