@Override
  public boolean borrow(BookPOJO book, UserPOJO user) {

    try {

      if (bTable.hasAlreadyBorrowed(book, user)) return false;

      // Book is not available. Add in queue if not
      if (!isAvailable(book)) {

        if (!bTable.isAlreadyInQueue(book, user)) addToQueue(user, book);

        return false;
      }

      return bTable.borrow(book, user);

    } catch (SQLException e) {
      Logger.getLogger(EmbeddedDB.class.getName()).log(Level.SEVERE, e.getMessage(), e);
    }

    return false;
  }