Create an object and adding it to a list should be two separate methods.
Create: Assuming you followed the recipe for the link you provided, you should have a BOM method called createCustomer() on the Customer BOM class. Since there is no XOM to back that BOM method, you must supply B2X code for that method. Most people refer to such as a method as a virtual BOM method. It would be helpful to see the B2X code for that method. Are your BOM and XOM classes the same type? If not, you would have specified an execution name for the Customer BOM class. In that case, you may need to cast the return value of the createCustomer() BOM method to the Customer BOM class.
// Verbalize as: new customer
Customer Customer.createCustomer()
return (Customer) new OtherCustomerClassFromXOM();
Add: Define another virtual BOM method on some class, and name the method addCustomer(Customer customer). Usually it would be on the class that contained the list variable as a member. But if the list variable is a global variable (i.e., a ruleset variable), then the method could be a static member on any class, even your Customer class.
// Verbalize as: add {0} to {1}
void Customer.addCustomer(Customer customer, java.util.Collection customerList)
if (customerList == null) {
customerList = new java.util.ArrayList();
}
customerList.add(customer);