商品情報の配列のcodeの要素のあるなしでデータベースへの登録を分けたいです。
しかし、クラスかコントローラのどちらにどのような記述をすればいいのかわかりません。
CSVReader クラスに

package drinkMachine.csv;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class CSVReader {
    private String fileName;
    private Integer num;
    public void csvAdd(HttpServletRequest request, ServletContext con)

    {

        // サーブレットファイルアップロードオブジェクトを生成
        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        // 基準値
        factory.setSizeThreshold(1024);
        upload.setSizeMax(-1);
        upload.setHeaderEncoding("UTF-8");
        // try catch 必要あり?
        List<FileItem> fileList;
        try {
            fileList = upload.parseRequest(request);
            System.out.println("fileList" + fileList);

            for (FileItem uploadItem : fileList) {

                // isFormFieldはフォームデータであるかの真偽を返す。fileならFalse
                if (!(uploadItem.isFormField())) {

                    // ファイルデータのファイル名(PATH名含む)
                    fileName = uploadItem.getName();

                    if ((fileName != null) && (!fileName.equals(""))
                            && fileName.matches(".+\\.(csv)$")) {
                        // PATH名を除くファイル名を取得
                        fileName = (new File(fileName)).getName();

                        // ファイルを格納するフォルダのパス
                        String path = "C:\\pleiades\\workspace\\jspServlet\\WebContent\\csv";

                        // ファイルデータを指定されたファイルに書き出し
                        try {
                            uploadItem.write(new File(path + fileName));
                        } catch (Exception e) {
                            // TODO 自動生成された catch ブロック
                            e.printStackTrace();
                        }

                        // fileの名前は(パスは)プログラム内で使うため受け取る
                        // image はname属性
                        if (uploadItem.getFieldName().equals("csv")) {
                            String file = path + "\\" + fileName;

                        }
                    }
                }
            }
        } catch (FileUploadException e1) {
            // TODO 自動生成された catch ブロック
            e1.printStackTrace();
        }
    }

    public List<List<String>> read() {

        // 返却用リスト箱作成
        List<List<String>> ret = new ArrayList<List<String>>();
        if (fileName != null) {
            System.out.println("fileName" + fileName);
            String inputCsvFile = "C:\\pleiades\\workspace\\jspServlet\\WebContent\\csv\\test1.csv";

            File csv = new File(inputCsvFile);
            System.out.println(csv);

            BufferedReader br = null;

            try {
                int lineCount = 0;
                // ファイルオープン
                 br = new BufferedReader(new FileReader(csv));

                // num行読み込む(0の場合は全行)
                String line = "";
                int idx = 0;
                while ((line = br.readLine()) != null) {
                    lineCount++;

                    // 1行を格納する箱作成
                    List<String> tmpList = new ArrayList<String>();

                    // 文字列index
                    int idxFrom = 0;
                    int idxTo = 0;
                    // 文字列長
                    while (true) {

                        // 最終項目を取得後は終了
                        if (idxFrom > line.length()) {
                            break;
                        }

                        // 次のセパレータ位置を取得
                        idxTo = line.indexOf(",", idxFrom);

                        // セパレータが発見できない場合は最終項目を取得
                        if (idxTo == -1) {
                            idxTo = line.length();
                        }

                        // 文字列取得
                        String word = line.substring(idxFrom, idxTo);

                        // 文字列を格納
                        tmpList.add(word);

                        // 検索開始位置を更新
                        idxFrom = idxTo + 1;
                    }

                    // 返却用リストに1行データを格納
                    ret.add(tmpList);

                    // カウンタ
                    if (idx % 1000 == 0) {
                        System.out.println("入力: " + idx + " 件");
                    }
                    idx++;

                    // numを超えたら読み込み終了。numが0のときは全量読む。
                    if (lineCount != 0 && idx > lineCount) {

                        break;
                    }
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (br != null) {
                        br.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return ret;
    }

}

と書きreturn retで何個かCSVファイルに記載されている商品データの配列(例えば、[1(code),100(price),apple(name)])をそれぞれ取得することができました。
CsvUpdateControllerには

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        CSVReader csvReading;
        String fileName;
        ServletContext con = getServletConfig().getServletContext();

        csvReading = new CSVReader();
        csvReading.csvAdd(request,con);
        List<List<String>> csvResult = csvReading.read();

        System.out.println("csvResult"+csvResult);
    }

}

Dao クラスには

package drinkMachine.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import drinkMachine.beans.ItemBean;

public class T001ItemDao {
    private Connection conn = null;
    private PreparedStatement pstmt = null;

    public T001ItemDao() throws ClassNotFoundException, SQLException {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection(
                "XXX",
                "xxx", "xxx");
    }

    // 商品登録メソッド
    public int addItem(String name, String price, String count,String isPR) {
        int result = 0;
        try {
            String query = "INSERT INTO T001_ITEM" + "(ITEM_NO,ITEM_NM,UNIT_PRICE,STOCK_COUNT,RECORD_DATE,IS_PR)" +"VALUES(TABLE_SEQ.NEXTVAL,'"+ name +"','"+ price +"','"+ count +"', sysdate,'"+ isPR +"')";
            System.out.println(query);
            pstmt = conn.prepareStatement(query);

            result = pstmt.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
            // TODO: handle exception
        }
        return result;

    }

    public String checkAdd(String name) {

        // Dataの重複チェック
        String kensaku = "";
        try {
            Statement statement = conn.createStatement();

            String sql = "SELECT count(*) as checkItem" + " FROM T001_ITEM"
                    + " WHERE ITEM_NM ='" + name + "'";
            kensaku = "";
            System.out.println(sql);
            ResultSet resultSet = statement.executeQuery(sql);

            resultSet.next();

            kensaku = resultSet.getString("checkItem");
        } catch (SQLException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }


        System.out.println(kensaku);
        return kensaku;
    }

    //引数:商品コード、商品名、金額、数量
    //戻り値:結果更新できたか否か YES or NO
    public int update(String code,String name,String price,String count) {
        int result = 0;
        try {
          Statement stmt = conn.createStatement();
            String sql = "UPDATE T001_ITEM SET"
                    + " ITEM_NM ='" + name + "',"  +
                    " UNIT_PRICE = '" + price + "', " +
                    " STOCK_COUNT = '" + count + "'," +
                    " RECORD_DATE = CURRENT_TIMESTAMP"+
                    " WHERE ITEM_NO = " + code;

          result = stmt.executeUpdate(sql);
        }catch (SQLException e){
          System.out.println("SQLException:" + e.getMessage());
        }
        return result;
    }


public ItemBean getLineItems(String code){
    String sql = "SELECT ITEM_NO,ITEM_NM,UNIT_PRICE,STOCK_COUNT FROM T001_ITEM WHERE ITEM_NO  ='" + code + "'";
    ItemBean ItemInfo = new ItemBean();

    try {
        Statement statement = conn.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);
        resultSet.next();

        ItemInfo.setCode(resultSet.getString("ITEM_NO"));
        ItemInfo.setName(resultSet.getString("ITEM_NM"));
        ItemInfo.setPrice(resultSet.getString("UNIT_PRICE"));
        ItemInfo.setCount(resultSet.getString("STOCK_COUNT"));



    } catch (SQLException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    }
        return ItemInfo;
}
}

と書きました。
登録にはaddItem を、更新にはupdate メソットを使います。
その商品情報のcodeがあれば、Daoクラスに記載しているUPDATE文を呼び出し、codeがなければDaoクラスに記載しているINSERT文を呼び出したいです。
そのようなことを行いたいなら、配列名[0]のように指定しif文であるなしを分岐させたら良いのでしょうか?
また、何個も商品の配列(例えば、[1,100,apple],[2,300,orange],[,500.banana]など)リストの中に何個もの配列が入っている時、それぞれの配列がcodeを持つか持たないかで呼び出すSQL文を変えたい時どのように書けばいいのでしょうか?