I didn't see an `Add` method in the `InProcItemModelRepository` when overriding the class mentioned above (overriding `Add` is mentioned in the linked question). I overrode the `CreateItem` method to have the default code with a few checks marked with comments as custom code as follows:

    namespace Common.CustomSitecore.DataExchange.Repositories
    {
        public class CustomInProcItemModelRepository : Sitecore.DataExchange.Local.Repositories.InProcItemModelRepository
        {
            protected override Guid CreateItem(ItemModel itemModel)
            {
                if (itemModel == null || !itemModel.ContainsKey("ParentID"))
                    return Guid.Empty;
                var result1 = Guid.Empty;
                var obj1 = itemModel["ParentID"];
                if (!Guid.TryParse(obj1?.ToString(), out result1) || result1 == Guid.Empty)
                    return Guid.Empty;
                var obj2 = itemModel["TemplateID"];
                Guid result2;
                if (!Guid.TryParse(obj2?.ToString(), out result2) || result2 == Guid.Empty)
                    return Guid.Empty;
                itemModel["TemplateID"] = (object)result2.ToString();
                if (string.IsNullOrWhiteSpace((string)itemModel["ItemName"]))
                    return Guid.Empty;
                var itemModel1 = Get(result1, (string)null, 0);
                if (itemModel1 == null)
                    return Guid.Empty;
                string empty = string.Empty;
                if (itemModel.ContainsKey("ItemLanguage") && itemModel["ItemLanguage"] != null)
                    empty = itemModel["ItemLanguage"].ToString();
                itemModel.Remove("ParentID");
                itemModel.Remove("ItemLanguage");
    
                var createdItemModel = this.CreateItemModelWithStringFieldValues(itemModel);
    
                //custom check to get the template to add's template. We will later check if 
                //this is a normal template or a branch template
                Guid templateOrBranchId;
                ItemModel templateOrBranch = null;
                if (Guid.TryParse(createdItemModel?["TemplateID"]?.ToString(), out templateOrBranchId))
                {
                    templateOrBranch = Get(templateOrBranchId);
                }
    
                //custom check to see if we are trying to add a branch template otherwise do the default
                Guid responseId = Guid.Empty;
                if (createdItemModel != null && templateOrBranch?["TemplateID"]?.ToString() == Sitecore.TemplateIDs.BranchTemplate.Guid.ToString())
                {
                    var db = Factory.GetDatabase(DatabaseName);
    
                    var parent = db.GetItem(itemModel1["ItemPath"].ToString());
    
                    var branch = (BranchItem)db.GetItem(new ID(templateOrBranchId));
    
                    var newItem = parent.Add(createdItemModel["ItemName"].ToString(), branch);
    
                    if (newItem == null)
                    {
                        Log.Error("Could not create item", this);
                    }
                    else
                    {
                        responseId = newItem.ID.Guid;
                    }
                }
                else
                {
                    //this part is not custom. It is the default functionality that adds from a template
                    responseId = (this.HandlerProvider.GetHandler<CreateItemHandler>().Handle(
                        (HandlerRequest) new CreateItemCommand()
                        {
                            Database = this.DatabaseName,
                            ItemModel = createdItemModel,
                            Path = itemModel1["ItemPath"].ToString(),
                            Language = empty
                        }) as CreateItemResponse).ItemId;
                }
    
                return responseId;
            }
        }
    }

I potentially could have tried to override the default config entry for my instance shown in the following config snippet. **Don't** make this config change if you are using the code from above (`CustomInProcItemModelRepository`) as it is not directly related. If using `CustomInProcItemModelRepository` patch the config mentioned in Vlad's post:

    <itemRepository type="Sitecore.PathAnalyzer.Data.SitecoreData.ItemRepository, Sitecore.PathAnalyzer" singleInstance="true">
       <param ref="pathAnalyzer/configuration" desc="configuration"/>
    </itemRepository>