Android Studio - Check if row exists in table and update it : Unfortunately all the solutions I could find, would not help me with my problem.

With a button click I want to add some value to my database table, but first it should check if the row already exists in my table, if so it just should update the row.

Here are my Codes:

**MAIN ACTIVITY: (Just the Button Click)**

    incredient= new Incredient();

    btnAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for(int i = 0; i < dataSource.size();i++){
                tvname = (TextView) shoppingList.getChildAt(i).findViewById(R.id.tvName);
                tvamount = (TextView) shoppingList.getChildAt(i).findViewById(R.id.tvAmount);

                String nameTV = tvname.getText().toString();
                String amountTV = tvamount.getText().toString();

                incredient.setName(nameTV);
                incredient.setAmount(amountTV);
                incredient.setId(i);

                TableIncredient.getInstance(IncredientShopping.this).checkRow(incredient);
                }


**DATABASE TABLE:**

    public class TableIncredient extends SQLiteOpenHelper {
        public static TableZutaten INSTANCE = null;

        public static final String DB_NAME = "INCREDIENT_TABLE";
        public static final int VERSION = 1;
        public static final String TABLE_NAME = "incredient_table";

        public static final String KEY_ID = "ID";
        public static final String COL_NAME = "Name";
        public static final String COL_AMOUNT = "AMOUNT";


        public TableIncredient (Context context) {
            super(context, DB_NAME, null, VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
        String createQuerry = "CREATE TABLE " + TABLE_NAME
                + "(" + KEY_ID + " INTEGER PRIMARY KEY, "
                + COL_NAME + " TEXT NOT NULL, "
                + COL_AMOUNT + " INTEGER DEFAULT NULL)";
        db.execSQL(createQuerry);
        }

        public boolean checkRow(Incredient incredient){
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor c = db.query(TABLE_NAME,
                new String[]{KEY_ID, COL_NAME, COL_AMOUUNT},
                KEY_ID + " =? AND " + COL_NAME + " =? AND " + COL_AMOUNT + " =?" ,
                new String[]{String.valueOf(incredient)},
                null, null, null, null);

            ContentValues values = new ContentValues();
            values.put(COL_NAME, incredient.getName());
            values.put(COL_AMOUNT, incredient.getAmount());

            if (c.moveToFirst()){
                increseIncredient(incredient);
                return true;
            }
            else {
                long newID = db.insert(TABLE_NAME, null, values);
                db.close();
                getIncredient(newID);
                return false;
            }
        }
    }

With this code it always uses the else statement and I do not know why this happens. 

I hope someone can help me to create a new row if it not exists and update the row if it exists. 