The method wouldn't be able to work exactly like that because ID may not be the only unique column in the database. You may need ID and Color for instance to find a unique item.
The way it works now is that you need to pass all column values to the ItemIndex function to find the current index.
So it would be something like:
$updateID = $MyCart->ItemIndex($itemID, $itemName, $itemDescription, $itemWeight, $itemQuantity, $itemPrice, $yourFirstCustomColumn) ;
all columns would be ignored except those marked unique, so you could pass "" for all of the values in your case (if you added only one custom column) like:
$updateID = $MyCart->ItemIndex($itemID, "", "", "", "", "", "") ;
That would return the correct ID since none of the other columns are necessary in your case to determine a unique row.
to update that row would look something like:
$MyCart->Items[$updateID]->Column = "New Value";
Once updating the row, if that row is involved in any calculations you use, you would need to call:
$MyCart->ResetCalculations($updateID);
That will reset all of the calculations for that row.
Then you would want to commit your changes to the session or cookie where the cart is being stored so that it would persist on the next page and throughout the checkout proces.... this is done with:
$MyCart->SaveCart();